home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / brutil.arc / RAM.ASM < prev    next >
Encoding:
Assembly Source File  |  1988-05-02  |  2.6 KB  |  177 lines

  1. CODE    SEGMENT
  2.     ASSUME    CS:CODE,DS:CODE
  3.     ORG    100H
  4. START:    MOV    AX,DS:[2]
  5.     PUSH    AX
  6.     MOV    SI,OFFSET L0159
  7.     CALL    L013B
  8.     POP    AX
  9.     PUSH    AX
  10.     MOV    SI,OFFSET L0159P
  11.     CALL    L013BP
  12.     POP    AX
  13.     PUSH    AX
  14.     MOV    DI,OFFSET L0159B
  15.     CALL    L013BB
  16.     POP    AX
  17.     MOV    BX,CS
  18.     SUB    AX,BX
  19.     PUSH    AX
  20.     MOV    SI,OFFSET L016B
  21.     CALL    L013B
  22.     POP    AX
  23.     PUSH    AX
  24.     MOV    SI,OFFSET L016BP
  25.     CALL    L013BP
  26.     POP    AX
  27.     MOV    DI,OFFSET L016BB
  28.     CALL    L013BB
  29.     MOV    AX,CS
  30.     MOV    SI,OFFSET L017D
  31.     CALL    L013B
  32.     MOV    AX,CS
  33.     MOV    SI,OFFSET L017DP
  34.     CALL    L013BP
  35.     MOV    AX,CS
  36.     MOV    DI,OFFSET L017DB
  37.     CALL    L013BB
  38.     MOV    DX,OFFSET L014B
  39.     MOV    AH,9
  40.     INT    21H
  41.     SUB    AX,AX
  42.     MOV    DS,AX
  43.     MOV    AX,DS:(15H*4)
  44.     OR    AX,DS:(15H*4)+2
  45.     JZ    NOEXTM
  46.     MOV    BX,DS:(15H*4)
  47.     MOV    AX,DS:(15H*4)+2
  48.     MOV    DS,AX
  49.     CMP    BYTE PTR [BX],317Q
  50.     JZ    NOEXTM
  51.     MOV    AX,CS
  52.     MOV    DS,AX
  53.     MOV    AH,88H
  54.     INT    15H
  55.     JC    NOEXTM
  56.     PUSH    AX
  57.     MOV    BX,64
  58.     MUL    BX
  59.     MOV    DI,OFFSET EXTMSG2
  60.     CALL    L013BB
  61.     POP    AX
  62.     MOV    SI,OFFSET EXTMSG3
  63.     CALL    L013BP
  64.     MOV    DX,OFFSET EXTMSG1
  65.     MOV    AH,9
  66.     INT    21H
  67.     RET
  68. NOEXTM: MOV    AX,CS
  69.     MOV    DS,AX
  70.     MOV    DX,OFFSET EXTMSG0
  71.     MOV    AH,9
  72.     INT    21H
  73.     RET
  74. L013BB: MOV    BX,16
  75.     MOV    CX,10000
  76.     MUL    BX
  77.     DIV    CX
  78.     MOV    WORKA,DX
  79.     MOV    WORKA+2,AX
  80.     MOV    SI,OFFSET WORKA
  81.     PUSH    DI
  82.     CALL    BIGDSP
  83.     POP    DI
  84.     MOV    CX,8
  85. FIXLP:    MOV    AL,[DI]
  86.     SUB    AL,'0'
  87.     JNZ    NOFIX
  88.     MOV    BYTE PTR [DI],' '
  89.     INC    DI
  90.     LOOP    FIXLP
  91. NOFIX:    RET
  92. BIGDSP: CLD
  93.     MOV    AX,'00'
  94.     STOSW
  95.     STOSW
  96.     PUSH    DI
  97.     LODSW
  98.     CALL    DSPVAL
  99.     POP    DI
  100.     LODSW
  101.     JMP    SHORT DVLP
  102. DSPVAL: CLD
  103.     PUSH    AX
  104.     MOV    AX,'00'
  105.     STOSW
  106.     STOSW
  107.     MOV    [DI],AL
  108.     POP    AX
  109. DVLP:    OR    AX,AX
  110.     JNZ    DSPDIG
  111.     RET
  112. DSPDIG: SUB    DX,DX
  113.     MOV    BX,10
  114.     DIV    BX
  115.     OR    DL,'0'
  116.     MOV    [DI],DL
  117.     DEC    DI
  118.     JMP    DVLP
  119. L013BP: MOV    CX,AX
  120.     MOV    AX,5
  121.     JMP    SHORT    L013BC
  122. L013B:    ADD    AX,31
  123.     MOV    CL,6
  124.     SHR    AX,CL
  125.     MOV    CX,AX
  126.     MOV    AX,3
  127. L013BC: ADD    SI,AX
  128. L0289:    PUSH    AX
  129.     mOV    AX,CX
  130.     MOV    CX,10
  131.     XOR    DX,DX
  132.     DIV    CX
  133.     MOV    CX,AX
  134.     ADD    DL,'0'
  135.     DEC    SI
  136.     MOV    [SI],DL
  137.     POP    AX
  138.     JCXZ    L02A3
  139.     DEC    AL
  140.     JNZ    L0289
  141. L029D:    RET
  142. L02A3:    DEC    AL
  143.     JZ    L029D
  144.     DEC    SI
  145.     MOV    BYTE PTR [SI],' '
  146.     JMP    L02A3
  147. L014B    DB    'Total RAM = '
  148. L0159B    DB    'xxxxxxxxx'
  149.     DB    ' Bytes or '
  150. L0159P    DB    'xxxxx'
  151.     DB    ' Paragraphs or '
  152. L0159    DB    'xxxk',13,10
  153.     DB    'Available = '
  154. L016BB    DB    'xxxxxxxxx'
  155.     DB    ' Bytes or '
  156. L016BP    DB    'xxxxx'
  157.     DB    ' Paragraphs or '
  158. L016B    DB    'xxxk',13,10
  159.     DB    'In use    = '
  160. L017DB    DB    'xxxxxxxxx'
  161.     DB    ' Bytes or '
  162. L017DP    DB    'xxxxx'
  163.     DB    ' Paragraphs or '
  164. L017D    DB    'xxxk',13,10,'$'
  165. EXTMSG0 DB    'No extended memory has been installed',13,10,'$'
  166. EXTMSG1 DB    'Total Extended memory = '
  167. EXTMSG2 DB    'xxxxxxxxx'
  168.     DB    ' Bytes or '
  169. EXTMSG3 DB    'xxxxxk',13,10,'$'
  170. WORKA    LABEL    WORD
  171. CODE    ENDS
  172.     END    START
  173.  memory = '
  174. EXTMSG2 DB    'xxxxxxxxx'
  175.     DB    ' Bytes or '
  176. EXTMSG3 DB    'xxxxxk',13,10,'$'
  177.